classDiagram
    class Context {
        -Strategy strategy
        +setStrategy(strategy: Strategy)
        +execute()
    }
    
    class Strategy {
        <<interface>>
        +doAlgorithm(data: List~String~): String
    }

    class ConcreteStrategyA {
        +doAlgorithm(data: List~String~): String
    }

    class ConcreteStrategyB {
        +doAlgorithm(data: List~String~): String
    }

    Context --> Strategy : uses
    Strategy <|.. ConcreteStrategyA
    Strategy <|.. ConcreteStrategyB
